package com.haixiaoke.saas.bill.mapper;

import com.haixiaoke.saas.bill.domain.BillItem;

import java.util.List;

/**
 * 账单项目Mapper接口
 * 
 * @author panda
 * @date 2025-06-26
 */
public interface BillItemMapper {
    /**
     * 查询账单项目
     * 
     * @param itemId 账单项目主键
     * @return 账单项目
     */
    BillItem selectBillItemByItemId(Long itemId);

    /**
     * 查询账单项目列表
     * 
     * @param billItem 账单项目
     * @return 账单项目集合
     */
    List<BillItem> selectBillItemList(BillItem billItem);

    /**
     * 新增账单项目
     * 
     * @param billItem 账单项目
     * @return 结果
     */
    int insertBillItem(BillItem billItem);

    /**
     * 修改账单项目
     * 
     * @param billItem 账单项目
     * @return 结果
     */
    int updateBillItem(BillItem billItem);

    /**
     * 删除账单项目
     * 
     * @param itemId 账单项目主键
     * @return 结果
     */
    int deleteBillItemByItemId(Long itemId);

    /**
     * 批量删除账单项目
     * 
     * @param itemIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteBillItemByItemIds(Long[] itemIds);

    /**
     * 批量新增账单项目
     * @param billItemList
     * @return
     */
    int insertBatchBillItem(List<BillItem> billItemList);

    /**
     * 根据账单id查询账单项目
     * @param billId
     * @return
     */
    List<BillItem> selectBillItemByBillId(String billId);
}
